#include <iostream>
#include <string>
#include <unistd.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string>
#include <string.h>
#include <unistd.h>


// #include "Log.hpp"
// #include "thread.hpp"
// #include "Protocol.hpp"
using namespace std;

// class A
// {
// public:
//     void Test(int a)
//     {
//         while (true)
//         {
//             cout << "这是一个测试用例 " << a << endl;
//             sleep(1);
//         }
//     }
//     void thread()
//     {
//         string name = "测试 ";
//         int *sk = new int(2);
//         Thread *td = new Thread(bind(&A::Test, this, std::placeholders::_1), name, sk, Thread::MODE::DETACH);
//         td->create();
//     }
// };
// void test_thread()
// {
//     A aa;
//     aa.thread();
//     while (true)
//     {
//         sleep(1);
//     }
// }

// void test_Protocol()
// {
//     Request req(1, 3, '+');
//     string body;
//     req.Serialize(&body);
//     cout << "Serialize: " << body << endl;
//     cout << "------------" << endl;
//     Protocol::AddHeader(body);
//     cout << "AddHander " << body << endl;

//     cout << "------------" << endl;
//     string buf;
//     buf += body;
//     Request req1(9, 30, '-');
//     req1.Serialize(&body);
//     Protocol::AddHeader(body);
//     buf += body;
//     cout << "buf" << buf << endl;
//     cout << "-----------------" << endl;
//     string msg;
//     bool ret = Protocol::GetMsg(buf, &msg);
//     if (ret == true)
//         cout << "msg: " << msg << endl;
//     cout << "-----------------" << endl;
//     body = Protocol::DelHeader(msg);
//     cout << "body: " << body << endl;
//     cout << "-----------------" << endl;

// }

void test_open()
{
    int fd = open("./Log.txt", O_CREAT | O_APPEND | O_RDWR, 0666);
    if(fd < 0)
    {
        std::cout << "fd = " << fd << std::endl;
        printf("LOG::failed %d-%s\n",errno,strerror(errno));
        exit(-1);
    }
    int n = dup2(fd,1);
    if(n < 0)
    {
        printf("LOG::dup2 failed %d-%s\n",errno,strerror(errno));
        exit(-1);
    }
    printf("哈哈哈");
    close(fd);
 
}


int main()
{
    test_open();
    // LOG(DEBUG,"哈哈,%d",2);
    return 0;
}